#ifndef editbox_h__20130914_2342_54
#define editbox_h__20130914_2342_54

#include "factory.h"
using std::unique_ptr;
using std::shared_ptr;

class Window;

class EditBox {
public:
  friend class Factory<EditBox>;
  static Factory<EditBox> create;
  virtual ~EditBox();
  EditBox& activate();
  EditBox& show();
  EditBox& hide();
  EditBox& move(const int& x, const int& y);
  bool has_box();
protected:
  EditBox(shared_ptr<Window>);
private:
  struct P;
  unique_ptr<P> p;
};

#endif//editbox_h__20130914_2342_54
